package com.company.project.web.finance.pojo.bill;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;

/**
 * <p>
 * 
 * </p>
 *
 * @author 任建波
 * @since 2019-09-10
 */
@TableName("finance_bill")
public class Bill implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 订单表
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 单号
     */
    private String code;

    /**
     * 房间id
     */
    private Integer roomId;

    /**
     * 0：未结账  1：挂单  2：免单  3：已结账，4：订单取消
     */
    private Boolean status;

    /**
     * 服务开始时间
     */
    private LocalDateTime beginTime;

    /**
     * 服务结束时间
     */
    private LocalDateTime endTime;

    /**
     * 挂单人
     */
    private String arrearsUser;

    /**
     * 挂单人电话
     */
    private String arrearsUserMobilephone;

    /**
     * 挂帐时间
     */
    private LocalDateTime arrearsTime;

    /**
     * 挂帐操作人
     */
    private String arrearsInputUserId;

    /**
     * 门店id
     */
    private Integer shopId;

    /**
     * 订单来源，0门店点单，1网络点单
     */
    private Boolean billFrom;

    /**
     * 订单类型：0普通订单，1到店预约，2上门预约, 3二维码点单
     */
    private Boolean type;

    /**
     * 客户id
     */
    private Integer customerId;

    /**
     * 免单人
     */
    private String freeBillUserId;

    /**
     * 免单理由
     */
    private String freeBillReason;

    /**
     * 应收
     */
    private BigDecimal receivable;

    /**
     * 项目折率
     */
    private BigDecimal discount;

    /**
     * 支付方式   1：微信  2：支付宝  3：储值卡  4：现金 5实体卡  6银行卡
     */
    private Boolean payWay;

    /**
     * 商品、服务项目总实收
     */
    private BigDecimal receipts;

    /**
     * 录入人id
     */
    private Integer inputUserId;

    /**
     * 录入时间
     */
    private LocalDateTime inputTime;

    /**
     * 修改人id
     */
    private Integer updateUserId;

    /**
     * 修改时间
     */
    private LocalDateTime updateTime;


    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public Integer getRoomId() {
        return roomId;
    }

    public void setRoomId(Integer roomId) {
        this.roomId = roomId;
    }

    public Boolean getStatus() {
        return status;
    }

    public void setStatus(Boolean status) {
        this.status = status;
    }

    public LocalDateTime getBeginTime() {
        return beginTime;
    }

    public void setBeginTime(LocalDateTime beginTime) {
        this.beginTime = beginTime;
    }

    public LocalDateTime getEndTime() {
        return endTime;
    }

    public void setEndTime(LocalDateTime endTime) {
        this.endTime = endTime;
    }

    public String getArrearsUser() {
        return arrearsUser;
    }

    public void setArrearsUser(String arrearsUser) {
        this.arrearsUser = arrearsUser;
    }

    public String getArrearsUserMobilephone() {
        return arrearsUserMobilephone;
    }

    public void setArrearsUserMobilephone(String arrearsUserMobilephone) {
        this.arrearsUserMobilephone = arrearsUserMobilephone;
    }

    public LocalDateTime getArrearsTime() {
        return arrearsTime;
    }

    public void setArrearsTime(LocalDateTime arrearsTime) {
        this.arrearsTime = arrearsTime;
    }

    public String getArrearsInputUserId() {
        return arrearsInputUserId;
    }

    public void setArrearsInputUserId(String arrearsInputUserId) {
        this.arrearsInputUserId = arrearsInputUserId;
    }

    public Integer getShopId() {
        return shopId;
    }

    public void setShopId(Integer shopId) {
        this.shopId = shopId;
    }

    public Boolean getBillFrom() {
        return billFrom;
    }

    public void setBillFrom(Boolean billFrom) {
        this.billFrom = billFrom;
    }

    public Boolean getType() {
        return type;
    }

    public void setType(Boolean type) {
        this.type = type;
    }

    public Integer getCustomerId() {
        return customerId;
    }

    public void setCustomerId(Integer customerId) {
        this.customerId = customerId;
    }

    public String getFreeBillUserId() {
        return freeBillUserId;
    }

    public void setFreeBillUserId(String freeBillUserId) {
        this.freeBillUserId = freeBillUserId;
    }

    public String getFreeBillReason() {
        return freeBillReason;
    }

    public void setFreeBillReason(String freeBillReason) {
        this.freeBillReason = freeBillReason;
    }

    public BigDecimal getReceivable() {
        return receivable;
    }

    public void setReceivable(BigDecimal receivable) {
        this.receivable = receivable;
    }

    public BigDecimal getDiscount() {
        return discount;
    }

    public void setDiscount(BigDecimal discount) {
        this.discount = discount;
    }

    public Boolean getPayWay() {
        return payWay;
    }

    public void setPayWay(Boolean payWay) {
        this.payWay = payWay;
    }

    public BigDecimal getReceipts() {
        return receipts;
    }

    public void setReceipts(BigDecimal receipts) {
        this.receipts = receipts;
    }

    public Integer getInputUserId() {
        return inputUserId;
    }

    public void setInputUserId(Integer inputUserId) {
        this.inputUserId = inputUserId;
    }

    public LocalDateTime getInputTime() {
        return inputTime;
    }

    public void setInputTime(LocalDateTime inputTime) {
        this.inputTime = inputTime;
    }

    public Integer getUpdateUserId() {
        return updateUserId;
    }

    public void setUpdateUserId(Integer updateUserId) {
        this.updateUserId = updateUserId;
    }

    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    @Override
    public String toString() {
        return "Bill{" +
        "id=" + id +
        ", code=" + code +
        ", roomId=" + roomId +
        ", status=" + status +
        ", beginTime=" + beginTime +
        ", endTime=" + endTime +
        ", arrearsUser=" + arrearsUser +
        ", arrearsUserMobilephone=" + arrearsUserMobilephone +
        ", arrearsTime=" + arrearsTime +
        ", arrearsInputUserId=" + arrearsInputUserId +
        ", shopId=" + shopId +
        ", billFrom=" + billFrom +
        ", type=" + type +
        ", customerId=" + customerId +
        ", freeBillUserId=" + freeBillUserId +
        ", freeBillReason=" + freeBillReason +
        ", receivable=" + receivable +
        ", discount=" + discount +
        ", payWay=" + payWay +
        ", receipts=" + receipts +
        ", inputUserId=" + inputUserId +
        ", inputTime=" + inputTime +
        ", updateUserId=" + updateUserId +
        ", updateTime=" + updateTime +
        "}";
    }
}
